/**
 * @author loongnoy
 * @version 1.0
 * @created 13-5��-2025 14:32:05
 */
// 代理搜索器类，实现了Searcher接口
public class ProxySearcher implements Searcher {
    // 实际执行搜索的搜索器实例
    private RealSearcher searcher = new RealSearcher();
    // 权限验证器
    private AccessValidator validator =  new AccessValidator();
    // 日志记录器
    private Logger logger = new Logger();
    // 构造方法
    public ProxySearcher() {
    }
    /**
     * 实现搜索功能，包含权限验证和日志记录
     * @param userID 用户ID
     * @param keyword 搜索关键词
     * @return 搜索结果或错误信息
     */
    public String doSearch(String userID, String keyword) {
        // 验证用户权限
        if (!validator.validate(userID)) {
            return "权限验证失败，无法执行搜索操作";
        }
        // 执行搜索
        String result = searcher.doSearch(userID, keyword);
        // 记录日志
        logger.log(userID);
        return result;
    }

    /**
     * 验证用户权限
     * @param userID 用户ID
     * @return 权限验证结果
     */
    public Boolean validate(String userID){
        // 验证用户权限
        return validator.validate(userID);
    }

    /**
     * 记录用户操作日志
     * @param userID 用户ID
     */
    public void log(String userID){
        // 记录用户操作日志
        logger.log(userID);
    }

}
